package com.hngates.architecture.mapper;

import com.hngates.architecture.domain.ArcProject;
import com.hngates.architecture.domain.dto.ProjectBuilderDto;
import com.hngates.architecture.domain.dto.ProjectStatusDto;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 项目（工地）Mapper接口
 *
 * @author jwhe
 * @date 2022-07-04
 */
public interface ArcProjectMapper {
    /**
     * 查询项目（工地）
     *
     * @param id 项目（工地）主键
     * @return 项目（工地）
     */
    public ArcProject selectArcProjectById(Long id);

    /**
     * 查询项目（工地）列表
     *
     * @param arcProject 项目（工地）
     * @return 项目（工地）集合
     */
    public List<ArcProject> selectArcProjectList(ArcProject arcProject);

    /**
     * 新增项目（工地）
     *
     * @param arcProject 项目（工地）
     * @return 结果
     */
    public int insertArcProject(ArcProject arcProject);

    /**
     * 修改项目（工地）
     *
     * @param arcProject 项目（工地）
     * @return 结果
     */
    public int updateArcProject(ArcProject arcProject);

    /**
     * 删除项目（工地）
     *
     * @param id 项目（工地）主键
     * @return 结果
     */
    public int deleteArcProjectById(Long id);

    /**
     * 批量删除项目（工地）
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteArcProjectByIds(String[] ids);

    /**
     * 根据项目名称查
     *
     * @param projectName
     * @return
     */
    public ArcProject selectArcProjectByName(String projectName);

    /**
     * 首页表格列表需要的数据
     *
     * @param projectName
     * @param builderCompanyName
     * @return
     */
    public List<ProjectBuilderDto> selectProjectBuilderInfos(@Param("name") String queryName);

    public Integer selectProjectCount();

    public  List<ProjectStatusDto> selectProjectStatus();
}
